package com.nali.dal.dao.general;

import java.util.List;
import java.util.Map;

import com.nali.dal.expression.ExpressionDto;
import com.nali.dal.expression.query.Criteria;

public interface IGeneralQueryDao {
	/**
	 * 查询多个结果
	 */
	List<Map<String, Object>> queryForList(String collectionName, ExpressionDto<Criteria> dto);
	/**
	 * 查询单一结果，如果多个则报错
	 */
	Map<String, Object> queryForObject(String collectionName, ExpressionDto<Criteria> dto);
	/**
	 * 查询单一结果，queryForObject的不报错版本
	 */
	Map<String, Object> queryOne(String collectionName, ExpressionDto<Criteria> dto);
	/**
	 * 查询limit结果
	 */
	List<Map<String, Object>> queryForLimit(String collectionName, ExpressionDto<Criteria> dto, int offset, int limit);
	/**
	 * 计算总数
	 */
	long count(String collectionName, ExpressionDto<Criteria> dto);

}
